Method to record a media file

ABSTRACT

A method and system for recording a media file, include a recorder and a player. The recorder receives in real time a first content of the media file; stores the first content in a recorded media file; and determines that the recorded media file includes a hole. The player plays in real time the recorded media file including the hole. The recorder then receives a second file data packet which includes a second content of the media file to fill the hole, and stores the second content in the recorded media file. The recorded media file can be replayed with the filled hole. During the replay, more content of the media file is played than during the first play.

BACKGROUND

1. Field

This invention relates generally to media, and more specifically to amethod to record a media file.

2. Related Art

When video cassette recorder (VCR) was first introduced, consumerflocked to purchase one so that they can record television programs.Typically a user would record her favorite show and watches therecording at a later time. Sometimes, she is watching a televisionprogram while she is recording the same program so that she can watchthe program again in a future time. The recording mechanism of a VCR isto record signals received by the VCR. If there is a glitch intelevision broadcast, causing for example a snow screen, or blurrypictures, the VCR records the snow screen and the blurry pictures. Thereplay of the recording would thus be no better than the playing of theoriginal broadcast.

As video transmission migrates to using data networks, transmission ofsignal uses data packets. However, the basic recording mechanism remainsunchanged. For example, a digital VCR records television programstransmitted through a data network, for example IPTV. If there is aglitch in the transmission, such as missing packets, the digital VCRrecords some predetermined or arbitrary data in place of the missingdata. During the viewing of the television program, a user sees snowscreen or blurry pictures. When the user replays the recorded program onthe digital VCR, the user also sees the snow screen or blurry pictures.Certainly a user desires the recorded program to be perfect, containingneither snow screen nor blurry pictures.

SUMMARY

A method and system for recording a media file, include a recorder and aplayer. The recorder receives in real time a first content of the mediafile; stores the first content in a recorded media file; and determinesthat the recorded media file includes a hole. The player plays in realtime the recorded media file including the hole. The recorder thenreceives a second content of the media file to fill the hole, and storesthe second content in the recorded media file. The recorded media filecan be replayed with the filled hole. During the replay, more content ofthe media file is played than during the first play.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 illustrates a scenario where a recorder records content of amedia file from a server, while a player is playing the content.

FIG. 2 illustrates a process to record a file segment of a media file.

FIG. 3 illustrates a process to record a plurality of file segments of amedia file.

FIG. 4 illustrates a process where a player plays a hole in a recordedmedia file.

FIG. 5 illustrates a process where a recorder fills a hole in a recordedmedia file after a player plays the hole in the recorded media file.

FIG. 6 illustrates a process of playing a recorded media file after ahole is filled.

FIG. 7 illustrates a process where a recorder informs a server about ahole.

DETAILED DESCRIPTION

FIG. 1 illustrates a scenario where a recorder records content of amedia file from a server, while a player is playing the content.

In one embodiment, a media file 120 is an audio file, such as a song, aspeech, recorded sound, or audio clip. In one embodiment, a media file120 is a video file, such as a movie, an animation clip, a video clip, atelevision program recording, or a video recording. In one embodiment, amedia file 120 is a television broadcast, or a radio broadcast. In oneembodiment, a media file 120 is a live concert, televised sport event,live news broadcast. In one embodiment, a media file 120 is an article,such as a book, a piece of news, written paper, spreadsheet, orpresentation slides. In one embodiment, a media file 120 is a picture,such as a photo, graphical image, graph, or table.

Recorder 130 receives file data 150 about a media file 120 from a server110. File data 150 includes content of media file 120. Recorder 130 thenrecords content of media file 120 into a recorded media file 160. In oneembodiment, the content includes the entire content of media file 120.In another embodiment, the content includes a portion of the content ofmedia file 120. Player 180 plays content of media file 120. In oneembodiment, Player 180 plays content of media file 120 from the recordedmedia file 160 at the same time as recorder 130 is recording therecorded media file 160. In one embodiment, player 180 plays the contentfrom the recorded media file 160 at a different time.

FIG. 2 illustrates a process to record a file segment of a media file.Recorder 230 communicates with server 210 over a communication channel.Server 210 sends file data 250 containing information for a media file220 to recorder 230. In one embodiment, the file data 250 includes afile data packet 255. File data packet 255 includes a file segment 262of media file 220, and a file segment location 264. In one embodiment,the file segment location 264 is a byte offset indicator. In otherembodiments, the file segment location 264 is a time, a fixed location,or a relative location. File segment location 264 indicates the locationin media file 220 where file segment 262 resides. In one embodiment,file segment 262 includes a contiguous block of content of media file220. The size of file segment 262 is the size of the content. Forexample, file segment 262 includes 1000 bytes of the content of mediafile 220. File segment 262 is said to be of size 1000 bytes.

Recorder 230 receives file data packet 255. Recorder 230 obtains filesegment 262 and file segment location 264 from file data packet 255.Recorder 230 places file segment 262 in recorded media file 260 at thelocation indicated by file segment location 264.

FIG. 3 illustrates a process to record a plurality of file segments of amedia file. Recorder 330 receives a plurality of file data packets 371,372, 373. File data packet 371 includes file segment location 344 atlocation 5000 of media file 320, and file segment 342 of 1000 bytes.File data packet 372 includes file segment location 354 at location 6000of media file 320, and file segment 352 of size 1000 bytes. File datapacket 373 includes file segment location 364 at location 8000 of mediafile 320, and file segment 362 of size 1000 bytes.

Recorder 330 places the file segments 342, 352, 362 into recorded mediafile 360. Recorded media file 360 includes a file segment hole 391 atlocation 7000. Hole 391 has a size of 1000 bytes. Recorded media file360 contains less content than media file 320. A “hole”, as used in thisspecification, refers to missing portions or gaps in a recorded mediafile in comparison to the media file.

FIG. 4 illustrates a process where a player plays a hole in a recordedmedia file. Recorded media file 460 includes a hole 491 at location7000. The hole 491 has a size of 1000 bytes. Player 480 plays contentfrom recorded media file 460. In one embodiment, player 480 justcompletes playing the content of recorded media file 460 before location7000. Player 480 cannot obtain the content of recorded media file 460 atlocation 7000. In one embodiment, player 480 skips the hole 491 andplays the content of recorded media file 460 at location 8000. Inanother embodiment, player 480 plays other content for some duration. Ina different embodiment, player 480 plays again earlier played content ofrecorded media file 460. In one embodiment, player 480 resumes playingcontent of recorded media file 460 at or after location 8000. In oneembodiment, player 480 plays a pre-selected content. Examples of noiseinclude advertisement, busy signal, or no signal. In one embodiment,player 480 plays noise.

FIG. 5 illustrates a process where a recorder fills a hole in a recordedmedia file after a player plays the hole in the recorded media file.Recorded media file 560 includes hole 591 at location 7000. Hole 591 isof size 1000 bytes.

After player 580 plays hole 591 of recorded media file 560, recorder 530receives a file data packet 570. File data packet 570 includes a filesegment 572 and a file segment location 574. File segment 572 and filesegment location 574 allow recorder 530 to fill hole 591. Recorder 530places file segment 572 into recorded media file 560. Recorded mediafile 562 represents the recorded media file 560 after recorder 530places file segment 572.

Recorded media file 562 contains more content than recorded media file560. In one embodiment, recorder 530 partially fills hole 591 with filesegment 572. Recorded media file 562 includes a plurality of holes 592between location 7000 and location 8000. The plurality of holes 592 is apart of hole 591. In another embodiment, recorder 530 completely fillshole 591. Recorded media file 562 does not have a hole between location7000 and location 8000.

FIG. 6 illustrates a process of playing a recorded media file after ahole is filled. Recorder 630 is recording recorded media file 660.Recorded media file 660 includes a hole 691. A first player 682 playsrecorded media file 660 with hole 691. Recorder 630 fills hole 691, asillustrated in FIG. 5. Recorded media file 662 is recorded media file660 after recorder 630 fills hole 691. Recorded media file 662 includesmore content than recorded media file 660. A second player 684 playsrecorded media file 662. Player 684 plays with a better quality thanplayer 682.

FIG. 7 illustrates a process where a recorder informs a server about ahole. Recorder 730 records recorded media file 760. Recorder 730receives a file data packet 770. File data packet 770 includes filesegment 762 and file segment location 764. Recorder 730 places filesegment 762 into recorded media file 760 at file segment location 764.Recorder 730 determines there's a hole 791 of recorded media file 760.Hole 791 is at location 794 of recorded media file 760. In oneembodiment, Recorder 730 determines there's a hole 791 after placing thefile segment 762.

Recorder 730 sends to server 710 information about hole 791. In oneembodiment, recorder 730 sends the location 794 of hole 791. In anotherembodiment, recorder 730 sends the location 794 and the size of hole791.

In one embodiment, recorder 730 receives a file data packet 772 thatfills hole 791 after recorder 730 sends to server 710 information abouthole 791. In one embodiment, server 710 sends the file data packet 772as a response to the information sent by recorder 730. In oneembodiment, the file data packet 772 is automatically received by therecorder 730 without sending to server 710 information about the hole791. For example, file data packet 772 arrives at the recorder 730 afterthe hole 791 is played.

A Recording System

In one embodiment, a recording system includes a recorder and a player.The recording system receives, in real time, content of a media filefrom file data sent from a server. The recording system plays, in realtime, content of the media file. The recording system, at the same time,records content of the media file into a recorded media file. In oneembodiment, the recording system receives content of media file with ahole. For example, the hole is caused by missing one or more file datapackets, one or more corrupted file data packets, or a temporarydisconnection between the recording system and the server. The recordingsystem plays the hole. The recording system detects and informs theserver about the hole. The server sends file data containing contentfilling the hole. In one embodiment, the server sends the file datafilling the hole after the recording system plays the hole. Therecording system records the content of the file data at the location ofthe hole. The recording system does not play content of the file datathat fills the hole. The recording system records more content of themedia file than the amount of content of the media file played by therecording system.

A Media Playing System

In one embodiment, a media playing system includes a recorder and aplayer. The media playing system receives a media file from a server.The media playing system plays content of media file multiple times. Inone embodiment, the media playing system plays content of media file thefirst time when the media playing system is receiving the content. Themedia playing system plays the second time content of media file afterthe media playing system records content of media file. In oneembodiment, during the first play, the media playing system receivescontent of the media file with a hole. For example, the hole is causedby missing one or more data packets, one or more corrupted data packets,a temporary disconnection between the recording system and the server.The media playing system plays the hole. The media playing systemdetects and informs the server about the hole. The server sends filedata containing content filling the hole. In one embodiment, the serversends the file data filling the hole after the media playing systemplays the hole. The media playing system does not play content of thefile data that fills the hole. The media playing system records thecontent of the file data at the location of the hole. The media playingsystem records more content of media file than the amount of content ofmedia file played by the media playing system during the first play.During the second play, the media playing system plays content from therecorded media file. The media playing system plays, during the secondplay, more content of media file than the amount of content of mediafile played during the first play.

Recorder to Server Communication

In one embodiment, the communication channel between recorder and serverincludes a data network, media transmission network, televisionbroadcasting network, television transmission network, cable network,local area network, or wide area network. In another embodiment, thecommunication channel includes an application programming interface,function call, or remote procedure call.

In a scenario, recorder receives file data from server. In anotherscenario, recorder sends to server information about a hole. In yetanother scenario, recorder receives file data from server as a responseto the information about a hole. In one embodiment, recordercommunicates to different modules in a server for the plurality ofscenarios. Recorder may communicate to the different server modulesusing different communication channels.

Recorded Media File

In one embodiment, recorded media file is stored in data storage such asa hard disk, flash memory, removable storage such as a digital videodisc, or cassette. A player plays a recorded media file by retrievingfrom the data storage.

In one embodiment, player plays content of media file from the file datareceived by recorder. In one embodiment, player also receives the filedata from server. Server sends the file data to both recorder andplayer.

Foregoing described embodiments of the invention are provided asillustrations and descriptions. They are not intended to limit theinvention to precise form described. In particular, it is contemplatedthat functional implementation of invention described herein may beimplemented equivalently in hardware, software, firmware, and/or otheravailable functional components or building blocks, and that networksmay be wired, wireless, or a combination of wired and wireless. Othervariations and embodiments are possible in light of above teachings, andit is thus intended that the scope of invention not be limited by thisDetailed Description, but rather by Claims following.

We claim:
 1. A method for recording a media file, comprising: (a)receiving in real time a first content of the media file by a mediaplaying system, wherein the media file comprises a hole; (b) whilereceiving the media file, playing the media file comprising the hole andthe first content by the media playing system in a first play of themedia file; (c) storing the received first content in a recorded mediafile by the media playing system; (d) determining that the recordedmedia file comprises the hole by the media playing system; (e)determining a location where the hole resides in the media file and asize of the hole by the media playing system, wherein the locationcomprises a time and the size comprises a time duration; (f) sending thelocation and the size of the hole to a server by the media playingsystem; (g) after the first play of the media file, receiving from theserver a second content of the media file corresponding to the locationand the size by the media playing system; and (h) storing the secondcontent in the recorded media file at the location by the media playingsystem.
 2. The method of claim 1, wherein the hole comprises a missingportion in the recorded media file as compared with the media file. 3.The method of claim 1, wherein the receiving (a) comprises: (a1)receiving by the media playing system in real time, over a communicationchannel between the media playing system and a second server, a filedata packet comprising: one or more first file segments of the mediafile comprising the first content; and one or more first file segmentlocations for indicating locations in the media file where the firstfile segments reside.
 4. The method of claim 1, wherein the playing (b)comprises: (b1) playing another content for at least a same duration asthe hole in the first play of the media file by the media playingsystem.
 5. The method of claim 4, wherein the another content comprises:a next content of the media file; a previous content of the media file;a pre-selected content; or noise.
 6. The method of claim 1, furthercomprising: (i) playing the recorded media file comprising the secondcontent in a subsequent play of the recorded media file by the mediaplaying system.
 7. The method of claim 1, wherein the sending (f)comprises: (f1) sending one or more second file segment locations forindicating locations in the media file where the hole resides and one ormore second file segment sizes.
 8. The method of claim 7, wherein thereceiving (g) and the storing (h) comprise: (g1) receiving by the mediaplaying system a second file data packet comprising: one or more secondfile segments of the media file corresponding to the second file segmentlocations and the second file segment sizes; and (h1) storing the secondfile segments in the recorded media file at the second file segmentlocations.
 9. The method of claim 1, wherein the time duration comprisesa time interval from a first location to a second location of the mediafile.
 10. A recording system, comprising: a recorder for receiving inreal time a first content of a media file, wherein the media filecomprises a hole; and a player for playing, while receiving the mediafile, the media file comprising the hole and the first content in afirst play of the media file, wherein the recorder stores the firstcontent in a recorded media file and determines that the recorded mediafile comprises the hole, wherein the recorder determines a locationwhere the hole resides in the media file and a size of the hole, whereinthe location comprises a time and the size comprises a time duration,wherein the recorder sends the location and the size of the hole to aserver, wherein after the first play of the media file, the recorderreceives from the server a second content of the media filecorresponding to the location and the size, wherein the second contentis stored in the recorded media file at the location.
 11. The system ofclaim 10, wherein the hole comprises a missing portion in the recordedmedia file as compared with the media file.
 12. The system of claim 10,wherein the recorder receives in real time, over a communication channelbetween the recording system and a second server, a file data packetcomprising: one or more first file segments of the media file comprisingthe first content; and one or more first file segment locations forindicating locations in the media file where the first file segmentsreside.
 13. The system of claim 10, wherein in playing the hole in thefirst play of the media file, the recorder plays another content for atleast a same duration as the hole.
 14. The system of claim 13, whereinthe another content comprises: a next content of the media file; aprevious content of the media file; a pre-selected content; or noise.15. The system of claim 10, further comprising: a second server forsending to the recorder the first content.
 16. The system of claim 10,wherein the recorder plays the recorded media file comprising the secondcontent in a subsequent play of the recorded media file.
 17. The systemof claim 10, wherein the recorder sends one or more second file segmentlocations for indicating locations in the media file where the holeresides and one or more second file segment sizes.
 18. The system ofclaim 17, wherein the recorder receives a second file data packetcomprising: one or more second file segments of the media filecorresponding to the second file segment locations and the second filesegment sizes; and wherein the recorder stores the second file segmentsin the recorded media file at the second file segment locations.
 19. Arecording system, comprising: a recorder for receiving in real time afirst content of a media file, for storing the first content in arecorded media file, for determining that the recorded media filecomprises a hole, for determining a location where the hole resides inthe media file and a size of the hole, wherein the location comprises atime and the size comprises a time duration; a player for playing therecorded media file comprising the hole or the first content; a firstserver for sending to the recorder the first content; and a secondserver, wherein the recorder sends to the second server the location andthe size, wherein the second server sends the second contentcorresponding to the location and the size to the recorder, wherein therecorder receives the second content of the media file to file the hole,wherein the second content is stored in the recorded media file.
 20. Amethod for recording a media file, comprising: (a) receiving in realtime a first content of the media file from a first server; (b) storingthe first content in a recorded media file; (c) determining that therecorded media file comprises a hole; (d) determining a location wherethe hole resides in the media file and a size of the hole, wherein thelocation comprises a time and the size comprises a time duration; (e)playing the recorded media file comprising the hole or the firstcontent; (f) sending to a second server the location and the size; (g)receiving a second content of the media file corresponding to thelocation and the size to fill the hole from the second server; and (h)storing the second content in the recorded media file.
 21. A method forrecording a broadcast media, comprising: (a) receiving in real time afirst content of the broadcast media by a media playing system, whereinthe broadcast media comprises a hole; (b) while receiving the broadcastmedia, playing the broadcast media comprising the hole and the firstcontent by the media playing system in a first play of the broadcastmedia; (c) storing the received first content in a recorded broadcastmedia by the media playing system; (d) determining that the recordedbroadcast media comprises the hole by the media playing system; (e)determining a location where the hole resides in the broadcast media anda size of the hole by the media playing system, wherein the locationcomprises a time and the size comprises a time duration; (f) sending thelocation and the size of the hole to a server by the media playingsystem; (g) after the first play of the broadcast media, receiving fromthe server a second content of the broadcast media corresponding to thelocation by the media playing system; and (h) storing the second contentin the recorded broadcast media at the location by the media playingsystem.